const {User} = require('../../model/user');
const bcrypt = require('bcrypt');
module.exports = async (req, res)=>{
    let {email, password} = req.body;
    if(email.trim().length == 0 || password.trim().length == 0)
        return res.status(400).render('admin/error',{msg: '邮件地址或者密码错误'});
    let user = await User.findOne({email: email});
    if(user){
        //比较当前输入的密码和数据库中的密码
        let isValid = await bcrypt.compare(password,user.password);
        if (isValid){
            //密码正确,将用户名存储在服务器端的session中
            //将用户名角色存储在服务器端的session中
            req.session.username = user.username;
            req.session.role = user.role;
            //登陆成功，重定向到用户列表页面
            //将当前对象放在req的公共属性中，就不用在每次请求中都手动传入对象信息，在模板中可以直接用locals获取信息
            //可以通过req获取app对象
            req.app.locals.userInfo = user;
            if(user.role == 'admin'){
                res.redirect('/admin/user')
            }else{
                res.redirect('/home/')
            }

        }else {
            res.status(400).render('admin/error',{msg: '邮件地址或者密码错误'});
        }
    }else {
        res.status(400).render('admin/error',{msg: '邮件地址或者密码错误'});
    }
};
